package com.puppycrawl.tools.checkstyle.checks.indentation.indentation;            //indent:0 exp:0

/**                                                                                //indent:0 exp:0
 * This test-input is intended to be checked using following configuration:        //indent:1 exp:1
 *                                                                                 //indent:1 exp:1
 * arrayInitIndent = 2                                                             //indent:1 exp:1
 * basicOffset = 2                                                                 //indent:1 exp:1
 * braceAdjustment = 0                                                             //indent:1 exp:1
 * caseIndent = 4                                                                  //indent:1 exp:1
 * forceStrictCondition = false                                                    //indent:1 exp:1
 * lineWrappingIndentation = 4                                                     //indent:1 exp:1
 * tabWidth = 4                                                                    //indent:1 exp:1
 * throwsIndent = 4                                                                //indent:1 exp:1
 *                                                                                 //indent:1 exp:1
 *                                                                                 //indent:1 exp:1
 */                                                                                //indent:1 exp:1
class InputIndentationArrays {                                                     //indent:0 exp:0
  /**                                                                              //indent:2 exp:2
   * Look-up table for factories.                                                  //indent:3 exp:3
   */                                                                              //indent:3 exp:3
  static final int[] factories = { 666666, 666666,                                 //indent:2 exp:2
    666666, 666666, 666666,                                                        //indent:4 exp:4
    666666, 666666, 666666,                                                        //indent:4 exp:4
  };                                                                               //indent:2 exp:2

  static final int[][] factories1 = {                                              //indent:2 exp:2
    { 666666, 666666, 666666, 666666 },                                            //indent:4 exp:4
    {}, // no support for SOFT keys                                                //indent:4 exp:4
    { 666666, 666666, 666666, 666666 }                                             //indent:4 exp:4
  };                                                                               //indent:2 exp:2

  // binomial(biggestBinomials[k], k) fits in an int, but not                      //indent:2 exp:2
  // binomial(biggestBinomials[k]+1,k).                                            //indent:2 exp:2
  static int[] biggestBinomials = {                                                //indent:2 exp:2
    Integer.MAX_VALUE,                                                             //indent:4 exp:4
    Integer.MAX_VALUE,                                                             //indent:4 exp:4
    65536,                                                                         //indent:4 exp:4
    2345,                                                                          //indent:4 exp:4
    477,                                                                           //indent:4 exp:4
    193,                                                                           //indent:4 exp:4
    110,                                                                           //indent:4 exp:4
    75,                                                                            //indent:4 exp:4
    58,                                                                            //indent:4 exp:4
    49,                                                                            //indent:4 exp:4
    43,                                                                            //indent:4 exp:4
    39,                                                                            //indent:4 exp:4
    37,                                                                            //indent:4 exp:4
    35,                                                                            //indent:4 exp:4
    34,                                                                            //indent:4 exp:4
    34,                                                                            //indent:4 exp:4
    33                                                                             //indent:4 exp:4
  };                                                                               //indent:2 exp:2

  @VisibleForTesting static final int[] halfPowersOf10 =                           //indent:2 exp:2
      {3, 31, 316, 3162, 31622, 3162277, 31622776, 316227766, Integer.MAX_VALUE};  //indent:6 exp:6

  public byte[] asBytes() {                                                        //indent:2 exp:2
    byte hash = 0;                                                                 //indent:4 exp:4
    return new byte[] {                                                            //indent:4 exp:4
        (byte) hash,                                                               //indent:8 exp:8
        (byte) (hash >> 8),                                                        //indent:8 exp:8
        (byte) (hash >> 16),                                                       //indent:8 exp:8
        (byte) (hash >> 24),                                                       //indent:8 exp:8
        (byte) (hash >> 32),                                                       //indent:8 exp:8
        (byte) (hash >> 40),                                                       //indent:8 exp:8
        (byte) (hash >> 48),                                                       //indent:8 exp:8
        (byte) (hash >> 56)};                                                      //indent:8 exp:8
  }                                                                                //indent:2 exp:2
}                                                                                  //indent:0 exp:0

@interface VisibleForTesting {}                                                    //indent:0 exp:0
